The prior art discloses a number of systems in which a co-processor is employed to assist the main processing unit to perform some of the more time consuming data processing tasks. In these systems it is not uncommon to have different types of display devices attached to the system, such as a monochrome display unit and an all-points addressable color display unit. Generally, each of the display units is selectively assignable to one of the processors by the operator at the time the system is brought on-line. Also in these systems, the applications that are being run by the system are generally based on programs that have been written for a multiprocessor-multidisplay system, so that whatever control and coordination of the displays that is required has been taken into consideration during the development of the program that is being run.
In co-pending application Ser. No. 706,804, now U.S. Pat. No. 4,703,420 filed concurrently herewith in the name of John Irwin, entitled "Bus Arbiter for a Data Processing System Having an Input/Output Channel," and assigned to the assignee of the present invention, a system is disclosed in which a co-processor is attachable to the input/output channel of a data processing system. Since the program that the co-processor executes is stored in the system's main memory, an I/O bus arbitrating scheme is employed which prevents the co-processor from monopolizing the I/O channel with instruction fetch requests to the main memory. The bus arbitrating scheme effectively allows the co-processor access to the input/output channel when none of the higher priority uses of the system are required and causes the co-processor to relinquish control of the bus in the presence of a request of a higher priority operator.
In a second co-pending application Ser. No. 706,802, now U. S. Pat. No. 4,695,945 also in the name of John Irwin and and entitled, "Processor I/O and Interrupt Filters," also assigned to the assignee of the present invention, an arrangement is disclosed which permits shared resources attached to the I/O bus of the system to be selectively assigned to either the main processor or the co-processor. The shared resources which are selectively assigned include the display devices, as well as other types of I/O devices.
Where an existing microprocessor, such as the INTEL 80286 is used as a co-processor in such a system, it would be desirable to be able to run programs that had originally been written for the IBM PC operating as a stand-alone system. In such an environment, the programs being run on the co-processor are referred to as uncontrolled programs, in that they have been written for an entirely different system configuration. These programs of unknown origin and internal protocols are unaware of the main processor and any sharing of resources that might occur on the input/output channel bus. Since these prior programs may call for the data being processed by the co-processor to be displayed on any one of three different display type devices that are normally attachable to the IBM PC, the new environment must be able to handle several different situations for displaying data. Each display type has been assigned by the architecture of the IBM PC system to a different range of addresses. The new environment, therefore, accommodates several different situations that could arise involving display types on the system and display types called for by the programs being run by the co-processor. Each display type consists of a CRT display head driven by a hardware adapter which has a memory mapped video buffer at a predefined address range and I/O mapped control register at a predefined address range.
For example, the new environment must accommodate the assignment of a single display to the main processor and a different display to the co-processor. It must also prevent the co-processor from writing data to a display owned by the main processor.
In addition to providing the conventional functions for displaying in the system, the availability of a second processor in the system provides additional functions for enhancing the overall display capability of the system. For example, in many applications it would be desirable from the operator's standpoint to be able to display data being processed by either the main processor or the co-processor selectively on one display device merely by toggling a key on the keyboard. Such an arrangement permits the operator to run two unrelated applications in parallel and check on the progress of each.
It would also be advantageous in some applications to be able to "window" data being processed by the co-processor onto the data being displayed by the main processor so that the operator could view both applications simultaneously without interrupting the operation of either program.
Lastly, it would be desirable to be able to run a program that was written to support one type of display device and have it operable on another type of display device where the picture element (PEL) densities are substantially different.
This feature of the invention permits the attachment of display devices developed in the future having higher resolutions to be employed in the present system even though the program code being run is not based on an enhanced display device.
The enhanced display functions described above are provided for with the present invention for a data processing system including a main processor and a co-processor, with very little additional circuitry and with little or no impact on system performance.